<?php


namespace app\common\validate\shop;


use yiqiniu\extend\validate\YqnValidate;

/**
 * 店铺商品库存信息
 * Class ShopStock
 * @package app\common\validate\shop
 */
class ShopStockValid extends YqnValidate
{

    /**
     *  字段：'id'，    类型：'bigint',    是否为空：1,    说明：
     *  字段：'mer_id'，    类型：'character varying(20)',    是否为空：1,    说明：所属商户
     *  字段：'shop_id'，    类型：'integer',    是否为空：1,    说明：所属店铺
     *  字段：'type'，    类型：'smallint',    是否为空：1,    说明：类型, 1虚码  2实码
     *  字段：'product_code'，    类型：'character varying(50)',    是否为空：1,    说明：商品code
     *  字段：'in_num'，    类型：'integer',    是否为空：1,    说明：进货量
     *  字段：'out_num'，    类型：'integer',    是否为空：1,    说明：销售量
     *  字段：'sum_num'，    类型：'integer',    是否为空：1,    说明：当前库存
     *  字段：'warn_flag'，    类型：'integer',    是否为空：,    说明：是否预警  1 预警 2忽略
     *  字段：'update_at'，    类型：'timestamp(0) without time zone',    是否为空：,    说明：更新时间
     */

    /**
     *  验证规则
     */
    protected $rule = [
        'id' => 'require|number|dbExists:shop_stock,id',
        'mer_id' => 'require',
        'shop_id' => 'require|number',
        'type' => 'require|number|in:1,2',
        'product_code' => 'require',
        'in_num' => 'require|number',
        'num' => 'require|number|gt:0',
        'out_num' => 'require|number',
        'sum_num' => 'require|number',
        'warn_flag' => 'number',
        'update_at' => 'date',


    ];

    /**
     * 定义错误信息
     * 格式：'字段名.规则名'    =>    '错误信息'
     *
     * @var array
     */
    protected $message = [
        'id.require' => '主键不能为空',
        'id.number' => '只能为数字类型',
        'id.dbExists' => '未找到信息',
        'mer_id.require' => '所属商户不能为空',
        'shop_id.require' => '所属店铺不能为空',
        'shop_id.number' => '所属店铺只能为数字类型',
        'type.require' => '类型,不能为空',
        'type.number' => '类型错误',
        'type.in' => '类型错误',
        'product_code.require' => '商品code不能为空',
        'in_num.require' => '进货量不能为空',
        'in_num.number' => '进货量只能为数字类型',
        'out_num.require' => '销售量不能为空',
        'out_num.number' => '销售量只能为数字类型',
        'sum_num.require' => '当前库存不能为空',
        'sum_num.number' => '当前库存只能为数字类型',
        'num.require' => '库存不能为空',
        'num.number' => '当前库存只能为数字类型',
        'num.gt' => '当前库存不能为0',
        'warn_flag.number' => '是否预警只能为数字类型',
        'update_at.date' => '更新时间只能为日期类型',


    ];

    //验证场景
    protected $scene = [
            'shop_info' => ['id'],
            'shop_save_warn' => ['id','type'],
            'shop_save_stock' => ['id','num','type']
    ];
}